<?php

namespace app\admin\controller;

use think\Controller;
use think\Db;

class User extends Controller
{
    public function index()
    {
        // 原生
        // $list = Db::query('SELECT * FROM user');
        // Db类
        // $list = Db::name('user, lover')->order(['user.id' => 'desc'])->where('user.id = lover.user_id')->select();
        // $list = Db::field('id, user_id')->table(['user'=>'id','lover'=>'user_id'])->select();

        $list = Db::table(['user', 'lover'])->field(['user.name', 'lover.name ln'])->where('user.id = lover.user_id')->select();

        // $list = Db::field('user.name,role.title')
        //     ->table(['think_user'=>'user','think_role'=>'role'])
        //     ->limit(10)->select();
        // 助手函数
        // $list = db('user')->field(['id', 'name'])->select();

        // var_dump($list);
        dump($list);
    }

    public function insert()
    {
        // 原生
        // $result = Db::execute("INSERT INTO user (id, name, age) VALUES(NULL, 'k1', 55)");
        // 准备数据
        $data = [
            'name' => 'k4',
            'age' => 88
        ];

        // Db类
        // $result = Db::name('user')->insert($data);
        // $result = Db::name('user')->insertGetId($data);

        // 助手函数
        $result = db('user')->insert($data);

        dump($result);

    }

    public function delete()
    {
        // 原生
        // $result = Db::execute("DELETE FROM user WHERE name = 'k1'");

        // Db类
        // $result = Db::table('user')->delete(30);
        // $result = Db::table('user')->where('name', '小王')->delete();

        // 助手函数
        $result = db('user')->delete(25);

        dump($result);

    }

    public function update()
    {
        // 原生
        // $result = Db::execute("UPDATE user SET age = '99' WHERE id = '29'");

        // Db类
        // $result = Db::table('user')->where('id', '29')->update(['age'=>100]);

        // 助手函数
        $result = db('user')->where('id', '29')->update(['age' => 10]);

        dump($result);

    }

    public function sw()
    {
        // 自动控制事务 (封装到闭包内)
        // Db::transaction(function () {
        //     // 数据
        //     $userdata = ['name' => '老大', 'age' => 35, 'sex' => '1'];
        //     $id = Db::table('user')->insertGetId($userdata);
        //     var_dump('用户ID：' . $id);
        //
        //     $loverdata = ['name' => '小丽丽', 'sex' => '2', 'user_id' => $id];
        //     Db::table('lover')->insert($loverdata);
        //
        //     return '简历完成';
        // });

        // 手动控制事务提交
        Db::startTrans(); // 开启事务
        try {
            // 数据
            $userdata = ['name' => '老三', 'age' => 30, 'sex' => '0'];
            $id = Db::table('user')->insertGetId($userdata);
            var_dump('用户ID：' . $id);

            $loverdata = ['name' => '小静静1', 'sex' => '2', 'user_id' => $id];
            Db::table('lover')->insert($loverdata);

        } catch (\Exception $e) {
            // 回滚事务
            Db::rollback();
        }
    }


}
